#pragma once

#include <iostream>
#include <vector>
/*
* NistTest.h
* Last edited: 21.07.2014
* Author: David Noack, Marcel Thomas
*/

class NistTest
{

	public:
		/** Construktor
		\param bitArray Represents the random bits which have to be tesed.
		\param bitArraySize The size of bitArry in bits.*/
		NistTest(bool* bitArray, int bitArraySize);
		
		/**Destructor*/
		~NistTest(){};

		
		void printResults();
		std::string testName; //im Konstruktor der abgeleiteten Klassen neu setzen

		virtual void start() = 0;
		
	protected:
		static double pi;//value pi or also called sobs
		static bool* bitArray;
		static int bitArraySize;

		int n; //number of bits to test, user input from start()
		double p_value;
		std:: vector<double> p_values; // for tests that generate several p-value results, e.g. Template Matching Tests
		void addResult(double new_p_value);

};

